package algo3.algothief.modelo;

import java.io.IOException;

import javax.xml.parsers.ParserConfigurationException;

import org.xml.sax.SAXException;

public class SeLlegoAlUltimoPais extends JuegoEnCurso {

	protected static String stringCaracteristico = "SeLlegoAlUltimoPais";
	
//-------------------------------------------------------------------------------------

	protected SeLlegoAlUltimoPais(Juego juego) {
		super(juego);
	}
	
//-------------------------------------------------------------------------------------	

	protected String verStringCaracteristico() {
		return stringCaracteristico;
	}
	
//-------------------------------------------------------------------------------------
	
	public boolean viajarA(Pais pais) throws ParserConfigurationException, SAXException, IOException {
		return super.juego.viajarA(pais, this);
	}
	
	public EstadoDelJuego modificarEstadoACausaDeEmitirOrdenDeArresto() {
		return new SeLlegoAlUltimoPaisConOrdenDeArresto(super.juego);
	}
	
	public EstadoDelJuego comprobarPosibleCambioDeEstadoAlVisitarUnLugar(Caso caso, CuartelGeneral cuartel, LugarDePais lugar) {
		EsconditeDeLadron escondite = (EsconditeDeLadron) lugar;
		boolean seEscondioEnEsteLugar = escondite.verSiSeEscondioElLadron();
		
		if (seEscondioEnEsteLugar) 
			return new SeEscapoElLadronPorNoTenerOrdenDeArresto(super.juego);
		
		return this;
	}
	
	public EstadoDelJuego modificarEstadoACausaDeSalirDelUltimoPais() {
		return new JuegoEnCurso(super.juego);
	}
}
